package com.briup.pts.service;

import com.briup.pts.entity.ManagerFenceHouse;
import com.briup.pts.entity.extend.ManagerFenceHouseExt;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface FenceHouseService {

    /**
     * find by page
     * 分页+条件查询栏舍
     *
     * @param pageNum  page num
     * @param pageSize page size
     * @param fhName   fh name
     * @return page info< manager fence house>
     */
    /**
     * 多条件分页查询
     * @param pageNum  当前页码
     * @param pageSize 每页大小
     * @param fhName   栏舍名称
     * @return 分页对象
     */
    public PageInfo<ManagerFenceHouse> findByPage(int pageNum, int pageSize, String fhName);

    /**
     * save or update
     * 新增或修改栏舍信息
     *
     * @param managerFenceHouse manager fence house
     */
    public void saveOrUpdate(ManagerFenceHouse managerFenceHouse);

    /**
     * remove by id
     * 根据栏舍编号删除栏舍信息，
     * 如果栏舍下有栏圈信息则无法删除
     *
     * @param fhId fh id
     */
    public void removeById(String fhId);


    /**
     * remove batch
     * 批量删除栏圈信息
     * 只要有一条栏舍信息被删除，就代表操作成功
     * 只有要删除的栏舍信息都不存在，才响应 数据不存在或者已经删除 的错误信息
     * 只有要删除的栏舍信息都有关联的栏圈信息，才响应 数据关联其他数据，无法删除 的错误信息
     *
     * @param ids ids
     */
    public void removeBatch(List<String> ids);

    /**
     * find by id
     * 根据栏舍编号查询栏舍信息
     * 以及该栏舍信息下关联的所有栏圈信息
     *
     * @param id id
     * @return manager fence house ext
     */
    public ManagerFenceHouseExt findById(String id);
}
